.. _ecmSxCfg_PosCorr2D_SetTableFromFile : ecmSxCfg_PosCorr2D_SetTableFromFile ==================================== ------------------------------------ SYNOPSIS -------- .. code-block:: none t_success ecmSxCfg_PosCorr2D_SetTableFromFile ( t_i32 NetID, t_i32 Axis, char *szFilePath, t_i32 *ErrCode ) DESCRIPTION ----------- - 이 함수는 보정 테이블의 헤더 정보 및 보정데이터 값을 파일을 통해서 설정하도록 하는 함수입니다. - 이 함수는 내부에서 ecmSxCfg_PosCorr2D_SetTableHeader() 함수와 ecmSxCfg_PosCorr2D_SetTableData() 함수를 사용하여 헤더 정보와 보정데이터를 모두 설정합니다. 따라서 이 함수를 사용하면 사용자는 ecmSxCfg_PosCorr2D_SetTableHeader() 함수와 ecmSxCfg_PosCorr2D_SetTableData() 함수를 사용할 필요가 없습니다. PARAMETER --------- - NetID : Network 번호. - Axis : 대상 축 번호. - szFilePath : 보정테이블 정보가 들어 있는 파일의 경로. - ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다. RETURN VALUE ------------ - 함수 수행의 성공 여부를 반환합니다. +-------+--------------------------------------+ | Value | Meaning | +=======+======================================+ | 0 | 함수 수행에 실패하였음을 의미합니다. | +-------+--------------------------------------+ | 1 | 함수 수행에 성공하였음을 의미합니다. | +-------+--------------------------------------+ REFERENCE --------- - 이 함수에 전달되는 파일은 xml 형식의 텍스트 파일이어야 하며, 보정테이블 헤더 정보와 보정데이터를 모두 포함하고 있어야 합니다. 2차원보정에 사용되는 xml 파일의 내용은 아래의 예와 같이 작성하면 됩니다. .. image:: ecmSxCfg_PosCorr2D_SetTableFromFile_00.jpg - 파일의 내용을 설명하기 전에 이해를 돕기 위해서 xml에서 사용되는 몇 가지 용어에 대해서 먼저 설명하겟습니다. * 엘리먼트(Element): 데이터 항목 노드를 말하며, <엘리먼트명> ~ 으로 표기합니다. * 엘리먼트내용(Element Content): 해당 엘리먼트의 값을 말하며, <엘리먼트명>엘리먼트내용 과 같이 <엘리먼트명>과 사이에 위치합니다. 이 값을 표기할 때는 인용부호("")를 붙이지 않습니다. * 엘리먼트속성(Element Attribute): 엘리먼트내용값 이외에도 엘리먼트는 속성이라는 항목을 통해서 데이터를 표현할 수가 있습니다. <엘리먼트명 Attribute1="data1" Attribute2="data2">와 같이 <엘리먼트> 태그 안에서 속성명="데이터" 의 형식으로 정의합니다. 속성과 속성간에는 공백으로 분리합니다. 위와 같은 XML에 대한 간단한 용어를 숙지했다는 전제하에 아래에서 2차원 보정데이터 파일의 내용에 대해서 설명하도록 하겠습니다 1. ~ 2차원보정에 사용되는 XML 파일의 내용은 ‘’로 시작해서 ‘’ 끝나야 합니다. 2차원보정 테이블과 관련된 정보는 모두 이 블록 내에서 정의되어야 합니다. 1-1.
~
보정테이블의 헤더 정보가 들어가는 영역입니다. 1-1-1. ~ 대상축의 헤더 정보를 설정하는 영역입니다. 이 엘리먼트의 내용(Element Content) 값은 대상축에 해당하는 축 번호를 설정합니다. 이 값은 ecmSxCfg_PosCorr2D_SetTableFromFile() 함수의 Axis 매개 변수값과 일치해야 합니다. 이 엘리먼트에서 정의해야 하는 속성(Attribute)은 아래와 같습니다. +-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 속성명 | 설 명 | +===========+======================================================================================================================================================================================================================================================================================================+ | StartPos | 대상축 기준좌표의 시작 위치를 의미합니다. | +-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | StepSize | 대상축 기준좌표의 간격을 의미합니다. 이 값은 각 열(Column)의 기준 좌표의 간격을 의미합니다. 테이블의 첫 번째 열은 StartPos에 해당하는 위치의 보정값이고, 두 번째 열은 (StartPos+StepSize)에 해당하는 위치의 보정값이며, 세 번째 열은 (StartPos+2*StepSize)에 해당하는 위치의 보정값이 되는 것입니다. | +-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | StepCount | 보정값을 정의한 대상축의 논리좌표 개수를 의미합니다. 이 값은 결국 보정테이블의 열(Column)의 갯수를 의미합니다 | +-----------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1-1-2. ~ 참조축의 헤더 정보를 설정하는 영역입니다. 이 엘리먼트의 내용(Element Content) 값은 참조축에 해당하는 축 번호를 설정합니다. 이 엘리먼트에서 정의해야 하는 속성(Attribute)은 아래와 같습니다. +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 속성명 | 설 명 | +===========+===================================================================================================================================================================================================================================================================================================+ | StartPos | 참조축 기준좌표의 시작 위치를 의미합니다. | +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | StepSize | 참조축 기준좌표의 간격을 의미합니다. 이 값은 각 행(Row)의 기준 좌표의 간격을 의미합니다. 테이블의 첫 번째 행은 StartPos에 해당하는 위치의 보정값이고, 두 번째 행은 (StartPos+StepSize)에 해당하는 위치의 보정값이며, 세 번째 행은 (StartPos+2*StepSize)에 해당하는 위치의 보정값이 되는 것입니다. | +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | StepCount | 보정값을 정의한 참조축의 논리좌표 개수를 의미합니다. 이 값은 결국 보정테이블의 행(Row)의 갯수를 의미합니다 | +-----------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ 1-2. ~
보정테이블 데이터가 정의되는 영역입니다. 보정데이터는 대상축의 기준위치에서의 보정오프셋값으로 정의되며, 각 기준위치에서 모터의 실제 위치와 기준위치의 관계는 모터실제위치 = 기준위치 + 보정오프셋 의 관계가 됩니다. 보정테이블은 2차원 배열로 정의되며 각 데이터는 쉼표(,)로 분리됩니다. 열의 개수는 TargetAxis의 StepCount속성에서 정의한 값과 같아야 하며, 행의 개수는 ReferAxis의 StepCount 속성에서 정의한 값과 같아야 합니다. 공백이나 탭문자는 무시됩니다. EXAMPLE ````````````` .. code-block:: cpp :linenos: #include "ComiEcatSdk_Api.h" #define NETID 0 #define TARGET_AXIS 0 // 2차원보정 기능 비활성화 ecmSxCfg_PosCorr2D_SetEnable(NETID, TARGET_AXIS, false, NULL); // 2차원보정테이블을 파일을 통해서 설정 ecmSxCfg_PosCorr2D_SetTableFromFile (NETID, TARGET_AXIS, "c:\\PosCorr2D.xml", NULL); // 2차원보정 기능 활성화 ecmSxCfg_PosCorr2D_SetEnable(NETID, TARGET_AXIS, true, NULL); // 이후에 TARGET_AXIS가 이송(단축, 보간, 마스터-슬레이브 등 어떤 이송이든 모두 적용)될 때는 보정테이블이 적용되어서 논리좌표에 대응되는 보정좌표로 모터가 이송되게 됨 // 프로그램의 종료 시점이나 2차원 위치보정 기능이 필요없는 경우에는 Reset 함수 실행해주는 것이 바람직함 ecmSxCfg_PosCorr2D_Reset(NETID, TARGET_AXIS, NULL);